/**
 * @Classname SmsLogThread
 * @Description TODO
 * @author Tale-Mi
 * @date 2019/1/31 16:52
 */
package org.tale.mscp.sms.aliyun.services;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.tale.mscp.sms.aliyun.dao.SmsLogMapper;
import org.tale.mscp.sms.aliyun.entity.SmsLog;

import java.util.UUID;

/**
 * 用于异步记录短信发送记录
 */
@Service
public class SmsLogThread {
    @Autowired
    private SmsLogMapper smsLogMapper;

    /**
     * @Description:通过@Async注解表明该方法是一个异步方法， 如果注解在类级别上，则表明该类所有的方法都是异步方法，而这里的方法自动被注入使用ThreadPoolTaskExecutor作为TaskExecutor
     * @Title: executeAysncTask1
     * @Date: 2018年9月21日 下午2:54:32
     * @Author: OnlyMate
     * @Throws
     */
    @Async
    public void SendSmsLogAysnc(String type, String title, String content) {
        SmsLog smsLog = new SmsLog();
        smsLog.setType("type");
        smsLog.setTitle("title");
        smsLog.setContent("content");
        smsLog.setId(UUID.randomUUID().toString().replaceAll("-", ""));
        System.err.println("\n插入开始");
        smsLogMapper.insert(smsLog);
        System.err.println("\n插入成功 ID 为：" + smsLog.getId());
    }

    @Async
    public void executeAsyncTask(int i) {
        System.out.println("线程" + Thread.currentThread().getName() + " 执行异步任务：" + i);
    }
}
